pertenece(X, [X|_]).
pertenece(X, [_|Cola]):-pertenece(X,Cola).


factorial(1,1).
factorial(N,Salida):-
        N1 is N-1,
        factorial(N1, Salida1),
        Salida is N*Salida1,!.

        
longitud([],0).
longitud([_|Cola],N):-longitud(Cola,T), N is T+1,!.


n_ultimos(Lista,N,Lista):-longitud(Lista,N).
n_ultimos([_|Resto],N,Lista):-n_ultimos(Resto,N,Lista),!.

        
duplica([],[]).
duplica([X|Resto],[X,X|Resto2]):-duplica(Resto,Resto2),!.
        
        
elimina_el_k([_|Lista],1,Lista).
elimina_el_k(Lista,0,Lista).
elimina_el_k([X|Resto],N,[X|Salida]):-
        N>0,
        T is N-1,
        elimina_el_k(Resto,T,Salida),!.


elimina(X,K,Sal):-elimina(X,K,K,Sal).
elimina([],_,_,[]).
elimina([_|Resto],1,K1,Sal):-elimina(Resto,K1,K1,Sal),!.
elimina([X|Resto],K,K1,[X|Sal]):-T is K-1,elimina(Resto,T,K1,Sal),!.

        